DNS 有哪些安全隐患
DNS存在以下安全隐患:
单点故障:DNS采用层次化的树形结构,由树叶走向树根就可以形成一个完全合格域名(Fully Qualified Domain Name, FQDN),DNS服务器作为该FQDN唯一对外的域名数据库和对内部提供递归域名查询的系统,其安全和稳定就存在单点故障的风险。
无认证机制:DNS没有提供认证机制,查询者在收到应答时无法确认应答信息的真假,黑客可以将一个虚假的IP地址作为应答信息返回给请求者,从而引发DNS欺骗。
内部攻击:攻击者在非法或合法地控制一台DNS服务器后,可以直接操作域名数据库,修改指定域名所对应的IP,当客户发出对指定域名的查询请求后,将得到伪造的IP地址。
序列号攻击:DNS协议格式中定义了用来匹配请求数据包和响应数据报序列的ID,欺骗者利用序列号伪装成DNS服务器向客户端发送DNS响应数据包,在DNS服务器发送的真实DNS响应数据报之前到达客户端,从而将客户端带到攻击者所希望的网站,进行DNS欺骗。
信息插入攻击:攻击者可以在DNS应答报文中随意添加某些信息,指示权威域名服务器的域名及IP,如果在被影响的域名服务器上查询该域的请求,则请求都会被转向攻击者所指定的域名服务器上去,从而威胁到网络数据的完整性。
缓存中毒:DNS使用超高速缓存,当一个名称服务器收到有关域名和IP的映射信息时,它会将该信息存放在高速缓存中。这种映射表是动态更新的,但刷新有一个周期,假冒者如果在下次更新之前成功修改了这个映射表,就可以进行DNS欺骗。
信息泄露:DNS的默认设置允许任何人进行区传送(区传送一般用于主服务器和辅服务器之间的数据同步),而区传送可能会造成信息泄露。
不安全的动态更新:随着DHCP的出现,客户计算机由DHCP服务器动态分配IP地址,使原来手工更新其A(Address)记录和PTR(反向解析)记录变得很难管理,为此提出了DNS的动态更新,即DNS客户端在IP地址或名称出现更改的任何时候都可利用DNS服务器来注册和动态更新其资源记录。但黑客可以利用IP欺骗伪装成DNS服务器信任的主机对区数据进行添加、删除和替换。
加强DNS安全的措施有以下这些:
使用DNS转发器:使用DNS转发器的另一个好处是它阻止了DNS服务器转发来自互联网DNS服务器的查询请求。如果DNS服务器保存了内部的域DNS资源记录,则这一点非常重要。不让内部DNS服务器进行递归查询并直接联系DNS服务器,而是让它使用转发器来处理未授权的请求。
使用只缓冲DNS服务器:只缓冲DNS服务器是针对未授权域名的。它被用作递归查询或者使用转发器。当只缓冲DNS服务器收到一个反馈时,它把结果保存在高速缓存中,然后把结果发送给向它提出DNS查询请求的系统。随着时间推移,只缓冲DNS服务器可以收集大量的DNS反馈,这能极大地缩短它提供DNS响应的时间。在管理控制下,把只缓冲DNS服务器作为转发器使用,可以提高组织安全性。
使用DNS广告者:DNS广告者(DNS Advertisers)是一台负责解析域中查询的DNS服务器。除DNS区文件宿主的其他DNS服务器之外的DNS广告者设置,是DNS广告者只回答其授权的域名的查询。这种DNS服务器不会对其他DNS服务器进行递归查询。这让用户不能使用公共DNS服务器来解析其他域名。通过减少与运行一个公开DNS解析者相关的风险(包括缓存中毒)增加了安全。
使用DNS解析者:DNS解析者是一台可以完成递归查询的DNS服务器,它能够解析为授权的域名。DNS服务器和DNS解析者之间的区别是DNS解析者仅仅针对解析互联网主机名。DNS解析者可以是未授权DNS域名的只缓存DNS服务器。可以让DNS解析者仅对内部用户使用,也可以让它仅为外部用户服务,这样就不用在没有办法控制的外部设立DNS服务器,从而提高了安全性。当然,也可以让DNS解析者同时被内、外部用户使用。
保护DNS不受缓存污染:DNS缓存污染已经成了日益普遍的问题。绝大部分DNS服务器都能够将DNS查询结果在答复给发出请求的主机之前,就保存在高速缓存中。DNS高速缓存能够极大地提高组织内部的DNS查询性能。但如果DNS服务器的高速缓存中被大量假的DNS信息“污染”了,用户就有可能被送到恶意站点,而不是其原先想要访问的网站。
使DNS只用安全连接:很多DNS服务器接受动态更新。动态更新特性使这些DNS服务器能记录使用DHCP的主机的主机名和IP地址。DNS能够极大地减轻DNS管理员的工作强度,否则管理员必须手工配置这些主机的DNS资源记录。然而,如果未检测DNS更新,可能会带来很严重的安全问题。一个恶意用户可以配置主机成为一台文件服务器、Web服务器或者数据库服务器,以动态更新DNS主机记录,如果有人想连接到这些服务器就一定会被转移到其他的机器上。
禁用区域传输:区域传输发生在主DNS服务器和从DNS服务器之间。主DNS服务器授权特定域名,并且带有可改写的DNS区域文件,在需要的时候可以对该文件进行更新,从DNS服务器从主DNS服务器接收这些区域文件的只读副本。从DNS服务器被用于提高来自内部或者互联网DNS查询响应性能。
使用防火墙来控制DNS访问:防火墙可以用来控制哪个用户可以连接到DNS服务器上。对于那些仅仅响应内部用户查询请求的DNS服务器,应该设置防火墙的配置,阻止外部主机连接这些DNS服务器。对于用作只缓存转发器的DNS服务器,应该设置防火墙的配置,仅仅允许那些使用只缓存转发器的DNS服务器发来的查询请求。防火墙策略设置的重要原因是它阻止内部用户使用DNS协议连接外部DNS服务器。
在DNS注册表中建立访问控制:在基于Windows的DNS服务器中,应该在DNS服务器相关的注册表中设置访问控制,这样只有那些需要访问的账户才能够阅读或修改这些注册表设置。
在DNS文件系统入口设置访问控制:在基于Windows的DNS服务器中,应该在DNS服务器相关的文件系统入口设置访问控制,这样只有需要访问的账户才能够阅读或修改这些文件。